Traditional database management systems were designed with data being disk resident (e.g., store data on secondary storage); accordingly, in these systems, data is paged in and out of memory as needed. More recently there has been a shift in design of database management systems, such as online transaction processing (OLTP) databases, attributable at least in part to decreases in memory costs. Accordingly, several database management systems (e.g., main memory database systems) have emerged that primarily rely on memory for data storage (e.g., most or all of the data may be stored in memory as opposed to secondary storage).
In a transactional workload, frequencies of record accesses tend to be skewed. Some records are “hot” and accessed frequently (e.g., these records can be considered to be included in a working set), others records are “cold” and accessed infrequently, if ever, while “lukewarm” records lie somewhere in between. Performance of database engines can depend on the hot (and lukewarm) records residing in memory. Moreover, with current designs of main memory database systems, hot, lukewarm, and cold records oftentimes remain in memory.